約 4,765,611 件
https://w.atwiki.jp/0-0-3-8/pages/15.html
pos WindowsでのPostgreSQLの導入 WindowsでのPostgreSQLの導入 ダウンロード方法 インストール方法 環境変数 [#y441ee84] 準備 [#o2eaa3d6] 起動・停止 データベース(コマンドプロンプト) データベース(pgAdmin3) 接続方法(DriverManager) 接続方法(DataSource)※推奨 動作確認 ダウンロード方法 http //www.postgresql.org/ にアクセスします。 上のタブの「Downloads」をクリックします。 左のメニューから「File Browser」をクリックし、「binary」→「v8.2.4」→「win32」から「postgresql-8.2.4-1-ja.zip」をダウンロードします。 ダウンロードするときに国旗などがたくさんでてきますが、どこを選んでもかまいません。 インストール方法 ダウンロードしたファイルを解凍します。 「postgresql-8.2-ja.msi」をダブルクリックします。 インストールウイザードが起動するので「次へ」をクリックします。 注意事項画面が出るので「次へ」をクリックします。 インストールオプションはいじらずにインストール先を選択し「次へ」をクリックします。 アカウント名とパスワード名を入力し「次へ」をクリックします。 デフォルトのアカウント名「postgres」はスーパーユーザ用に使用するため、別のアカウント名を入力してください。サービス名、ドメイン名はいじる必要はありません。 データベースクラスタの初期化画面ではスーパーユーザ名を「postgres」、パスワードを「postgres」と入力してください。それ以外の項目はいじらなくていいです。入力したら「次へ」をクリックします。 PL/pgsql項目にチェックが入っていることを確認し「次へ」をクリックします。 Adminpack.項目にチェックが入っていることを確認し「次へ」をクリックします。 「次へ」をクリックし、インストールを開始します。 「おめでとうございます」とか言われるので「終わる」をクリックしインストールを終了します。 環境変数 マイコンピューターを右クリックします。 プロパティをクリックします。 詳細設定タブをクリックします。 環境変数をクリックします。 環境変数画面が開いたらユーザー環境変数(上)の「新規」をクリックします。 以下の変数名と値を入力します。 変数名 変数値 POSTGRES_HOME C /Program Files/PostgreSQL/8.2 PATH %POSTGRES_HOME%/bin 注意 インストール場所を変更した場合、POSTGRES_HOME は変更先を指定する。 準備 %POSTGRES_HOME%/bin (C \Program Files\PostgreSQL\8.2\bin)以下にある「pgAdmin3.exe」のショートカットをデスクトップに作成します。 スタートメニューから「PostgreSQL8.2」にある「サービスの起動・停止」のショートカットをデスクトップに作成します。 コントロールパネルから「管理ツール」→「サービス」→「PostgreSQL Database Server 8.2」をダブルクリックし、「スタートアップの種類」を「手動」に指定します。 %POSTGRES_HOME%/jdbc (C \Program Files\PostgreSQL\8.2\jdbc)以下にあるファイルを%CATALINA_HOME%/common/lib/ (C \Program Files\Apache Software Foundation\Tomcat 5.5\common\lib)以下にコピーします。 起動・停止 起動 先ほど作成した「サービスの起動.exe」のショートカットをダブルクリックします。 停止 先ほど作成した「サービスの停止.exe」のショートカットをダブルクリックします。 上記以外に「PostgreSQL Database Server 8.2」から起動・停止を行うこともできます。 データベース(コマンドプロンプト) DB を構築 作成 createdb DB名 削除 dropdb DB名 DB にアクセス psql -U postgres DB名 テーブルを作成 作成 create table テーブル名(カラム名 カラムの型, ・・・); 削除 drop table テーブル名; 値を挿入・削除 insert into テーブル名(カラム名, ・・・) value(値, ・・・); delete from テーブル名 where 条件文; 確認 select * from テーブル名; その他の SQL 文は以下のホームページを参照。 http //homepage2.nifty.com/sak/ データベース(pgAdmin3) PostgreSQLを起動するので先ほど作成した「サービスの起動.exe」をダブルクリックします。 先程作成した 「pgAdmin3.exe」 のショートカットをダブルクリックします。 「PostgreSQL Database Server 8.2」 をダブルクリックします。 DB を構築するので「データベース」 を右クリックし、「新しいデータベース」 を選択し、名前を決めたら「OK」をクリックします。 テーブルを作成するので作成した DB の階層にある 「スキーマ」→「作成したスキーマ名」→「テーブル」 を右クリックし、「新しいテーブル」 を選択します。 「列」 タブより 「追加」 を選択し、カラムを追加します。 値を挿入・削除・確認します。 作成したテーブルを右クリックし、「データビュー」を選択します。 接続方法(DriverManager) インポート import java.sql.*; フィールド Connection connection = null; 接続 以下のように記述 Class.forName("org.postgresql.Driver"); connection = DriverManager.getConnection( "jdbc postgresql //localhost/DB名?userUnicode=true characterEncoding=Shift_JIS" ,"postgres","postgres" ); 接続方法(DataSource)※推奨 DataSource を記述します。 http //tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html にアクセスします。 真ん中より下のほうのPostgreSQL欄にある 「2b. Application-specific resource configuration」 の Context ~ /Context の文をコピーします。 %CATALINA_HOME%/conf/Catalina/localhost/ 以下にある 「アプリケーション.xml」 を開き、 先程の文を Context ~ /Context に上書き貼り付けします。 その際、以下の項目を訂正してください。 「someApp」 → アプリケーション名 「postgres」, 「mydb」 → DB 名 「myuser」, 「mypasswd」 → postgres PostgreSQL の欄にある 「3. web.xml configuration」 の resource-ref ~ /resource-ref の文をコピーします。 %CATALINA_HOME%/webapps/アプリケーション名/WEB-INF/ 以下にある 「web.xml」 を開き、 先程の文を以下の通りになるように貼り付けます web-app servlet ~ /servlet servlet-mappong ~ /sevlet-mapping resource-ref ~ /resource-ref /web-app インポート import java.sql.*; import javax.sql.*; import javax.naming.InitialContext; フィールド InitialContext icon = null; DataSource datasource = null; Connection connection = null; 接続 以下のように記述 icon = new InitialContext(); datasource = (DataSource)icon.lookup("java comp/env/jdbc/DB名"); connection = datasource.getConnection(); データソースを利用することでデータベースへの接続をより高速化できる。 動作確認 DB名 sampleDB テーブル名 sample スキーマ sample user_id(character varying[10]) password(character varying[10]) b2050001 mysql b2050002 postgresql b2050003 oracle 引き続きtomcatで使ったSampleディレクトリを使用します。 上記のデータベースを作成します。 PostgreSQLを起動するので先ほど作成した「サービスの起動.exe」をダブルクリックします。 先程作成した 「pgAdmin3.exe」 のショートカットをダブルクリックします。 「PostgreSQL Database Server 8.2」 をダブルクリックします。 DB を構築するので「データベース」 を右クリックし、「新しいデータベース」 を選択し、名前に「sampleDB」を入力して「OK」をクリックします。 テーブルを作成するので作成した DB の階層にある 「スキーマ」を右クリックし、「新しいスキーマ」を選択し、名前に「sample」を入力して「OK」をクリックします。 「スキーマ」→「sample」から「テーブル」 を右クリックし、「新しいテーブル」 を選択します。 テーブルに「sample」と名前をつけます。 「列」タブから「追加」 を選択し、カラムを追加します。 名前に「user_id」、データ型に「character varying」、長さに「10」を入力して「OK」を繰り句します。 同じように「password」を追加します。 「制約」タブから「主キー」の「追加」をクリックします。 主キー画面の「列」タブのボックスから「user_id」を選び、「追加」をクリックし「OK」をクリックします。 「OK」をクリックします。 「sample」テーブルを右クリックし「データビュー」→「全ての列を表示」を選択します。 ここで↑の値の入力をしてください。入力し終わったら右上の×から閉じてください。(最初にデータを入れたときのみ自動で保存されます) 下記のファイルをダウンロードしてください。 SampleServlet2.java SampleDB.java sample2.jsp ダウンロードしたファイルを基本構造通り配置してください。 ******************** ***ディレクトリ構成*** ******************** Sample | +---WEB-INF | +---src | | | +---sample | | | +---SampleServlet2.java | SampleBD.java | +---classes | | | +---sample | | | +---SampleServlet2.class | SampleDB.class | +---lib | +---web.xml | sample2.jsp コマンドプロンプトを開いて「SampleServlet2.java」と「SampleDB.java」をコンパイルをします。 「sample」フォルダをつくり↑のように配置したら、最初に「SampleDB.java」をコンパイルします。コンパイルのときは以下のコマンドを入力してください。 javac -d . SampleDB.java コンパイルをしたときに注意が出るかもしれませんが、無視してかまいません。たぶんコンパイルはされて「sample」フォルダができてその中に「SampleDB.class」ファイルが生成されているはずです。 同じように「SampleServlet2.java」もコンパイルします。コマンドは以下のとおりです。 javac -d . SampleServlet2.java パッケージ以下をコンパイル javac -d . *.java 「SampleDB.class」と「SampleServlet2.class」ファイルを「classes」フォルダに移動します。 「web.xml」、「Sample.xml」を記述します。詳細は上の接続方法(DataSource)※推奨の項目7までを見てください。 パッケージの記述例 servlet-class ~ /servlet-class のみsample.SampleServlet2に書き換え、他はSampleServlet2に書き換える。 Tomcatを起動して http //localhost 8080/Sample/servlet/SampleServlet2 にアクセスします。 これでPostgreSQLのインストールは終了です。
https://w.atwiki.jp/tfcfuji/pages/18.html
ServerXMLHTTP が動作するには Proxycfg ツールを実行する必要がある http //support.microsoft.com/kb/289481/
https://w.atwiki.jp/kojintekinawiki/pages/67.html
だいたいDBAロール持っているSYSユーザでの操作を想定しています。 Oracle系Tips集 TMロック TMロック(DMLエンキュー)について(KROWN 46970) (ドキュメントID 1716517.1) ※基本的には上記のMOSを参照すること ロック中のオブジェクト名やセッション情報取得 SELECT t3.sid,t3.serial#, t2.object_type, t2.owner,t2.object_name,t2.subobject_name ,t3.osuser, t3.program,t3.username ,TO_CHAR(t3.logon_time,'YYYY/MM/DD HH24 MI SS') AS logon_time,t1.locked_mode FROM gv$locked_object t1 LEFT JOIN dba_objects t2 ON t1.object_id = t2.object_id LEFT JOIN gv$session t3 ON t1.inst_id = t3.inst_id AND t1.session_id = t3.sid ORDER BY t3.sid,t2.object_name,t2.subobject_name ; TMロックのモード モード 内容 LMODE RS(SS) 行共有 LMODE=2 RX(SX) 行排他 LMODE=3 S 共有 LMODE=4 SRX(SSX) 共有行排他 LMODE=5 X 排他 LMODE=6 各モードの互換性 要求するモード RSRXSSRXX ―――――――――― 既モRS|可可可可否 に|| 取ドRX|可可否否否 得| さS|可否可否否 れ| てSRX|可否否否否 い| るX |否否否否否 各SQL文によって取得されるTMロックのモード 1) SQL文の対象表に対して取得するTMロックのモード SELECT...FROM table,,, なし INSERT INTO table... RX UPDATE table... RX DELETE FROM table... RX SELECT...FROM table FOR UPDATE OF... RS LOCK TABLE table IN ROW SHARE MODE RS LOCK TABLE table IN ROW EXCLUSIVE MODE RX LOCK TABLE table IN SHARE MODE S LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE SRX LOCK TABLE table IN EXCLUSIVE MODE X 2) 特殊ケース 参照整合性制約が定義されている表に対してDML文を発行すると、更新対象では ない表に対してTMロックが獲得される場合がありますが、その状況はバージョン によって異なります。Document 1720454.1(KROWN 59405)「参照整合性制約とDMLロックについて」を 参照してください。 ページ初期作成日 2022年12月04日 ページの更新日時 2023年03月11日 (土) 10時50分14秒 ページ作成から97日目 ここを編集
https://w.atwiki.jp/wiki7_sirius/pages/49.html
≪2006.01.18 バージョンアップ≫ (Live Update #17) ヘッドライン NPCの役割が一目でわかるように! 高レベルプレイヤー向けのシティタスクが追加されます! キャラクターの足が速くなります! ヴァースーンの廃墟がより挑戦的なものになり、得られる戦利品の質が向上します! 多くの鎧の外見が新しいものになります! ホットキーアイコンのサイズを変更できるようになります! カスタムUIを使用しているプレイヤー向けにユーザーインターフェースの変更点が分かりやすくなります! NPCの役割タグ NPCがノーラスの世界でどのようなサービスを提供してくれるか、どのような役割をもっているかを表示するタグが導入されます。 タグはNPCの名前の下に表示されます。 ガードにNPCの居場所を尋ねる場合にも、タグで尋ねることができるようになります。例えば、メンダーを探す場合には「mender」と入力することで探すことができます。 現在は以下のタイプのNPCにタグが表示されています。今後より多くのタグが追加される予定です。 銀行員(Banker) 呪文の巻き物販売(Spell Scrolls) コンバットアーツ販売(Combat Arts) 生産スキル応用レシピ販売(Advanced Tradeskill Recipes) Court Treasures アーケイン・サイエンティスト(Arcane Scientist) ディズマルレイジ・プリースト(Dismal Rage Priest) フリーポートミリティア・オフィサー(Freeport Militia Officer) シーフュリー・バッカニア(Seafury Buccaneer) コンコーディアム・メイジ(Concordium Mage) テュナリアン・アライアンス・グローブ・ウォーデン(Tunarian Alliance Grove Warden) ケイノスガード・オフィサー(Qeynos Guard Officer) セレスティアル・ウォッチ・プリースト(Celestial Watch Priest) ガード(Guard) バーテンダー(Bartender) バーメイド(Barmaid) メンダー(Mender) シールドスミス(Shieldsmith) アルケミスト(Alchemist) シティタスク レベル50~55のクリーチャーを標的としたシティタスクが追加されます。キャラクターのレベルが45以上の場合に、これらのシティタスクを受けることができます。 ソロ向け、グループ向け、両方のシティタスクが追加されます。 都市の一つの派閥から受けたシティタスクを完了させても、都市の他の派閥の評判が下がることがなくなります。将来的に、ファクションに関してより大きな変更を予定しています。 ダンジョンの探検 ヴァースーンの廃墟 多くの既存のネームドエンカウンターに変更が加えられ、彼らから得られる戦利品の質が向上します。戦利品は、多くのネームドが同じアイテムをドロップするのではなく、それぞれのネームドが独自のアイテムをドロップするようになります。 一部のネームドエンカウンターに、戦利品として得られる新しいアイテムが追加されます。また、生産用のレア素材をドロップする可能性があります。 ネームドエンカウンターはわかりやすいプレースホルダーを持つようになります。ネームドエンカウンターの出現率は低いため、多くの場合はこれらのプレースホルダーを目撃するようになります。 デザート オブ フレイム アリーナチャンピオン Rathmana AllinがForlorn Ritualistをドロップする確率が増加します。 クエスト 「イル・カジムの絨毯」シリーズのクエストで、ステップ間の時間制限はなくなります。 「イル・カジムの絨毯」シリーズのクエストの報酬は、速度が上昇します。 グループ内の一人しかクエスト「古代の砂漠の力」を進行させていない場合でも、グループ全体がSamiel Pirateのボートインスタンスに入ることができるようになります。 レベル60のキャラクターはSweeperから鍵を入手することができるようになります。 以前にクエスト「過去へ」を完了させ、報酬を売却したプレイヤーは、ピラー・オブ・フレイムのSiraj al Dinに話し掛けることで変更された報酬を受け取ることができます。 「クジャク」シリーズのクエストを完了させたメイジは、報酬の武器を調べることで、片手用または両手用に切り替えることができるようになります。 「クジャク」シリーズのクエストで得られる最終的な報酬のリジェネレーション効果は、正常にパワーを回復するようになります。 ゾーンとNPC トラベル・カーペットを使用する際に、絨毯を所有している必要がなくなります。 各コートの本部で、呪文とコンバットアーツが別々のNPCから販売されるようになります。 ピラー・オブ・フレイムにいる非常に強力なCyclopesの一部は、巨大な家に退却したようです。 デザート オブ フレイムの強すぎたり、弱すぎたりしたネームドの強さが、適切なレベルのソロやグループ向けに調整されます。 Gates of Akhet AkenのViperは狭い場所でもターゲットできるようになります。 Ahkmun Rhoenは自分をスタンすることがなくなります。 レクト・ムン・スルのシンボルを作成できるようになります。 ピラー・オブ・フレイムのLarge Blanketfishは1匹のエンカウンターとして出現するようになります。 デザート オブ フレイムで敵対する特定のNPCを倒した際に得られるファクションが増加します。 アル・アファズの庭でFirewitchが倒されたあとにThe Black Queenは正常に反応するようになります。 アイテム デザート オブ フレイムで入手することができる一部のフェイブルドアイテムの彩りが、より豊かになります。 中級Iと上級Iの呪文やコンバットアーツは、デザート オブ フレイムのゾーンでこれまでよりも頻繁にドロップするようになります。 デザート オブ フレイムの特定のネームドから希少な生産スキルの材料を入手することができるようになります。最近行われたヴァースー ンの廃墟、ラニーアイ、カジック・シュールの神殿の変更と同様に、最高の素材を手に入れるにはダンジョンが最適です。 ゴッドキングの正義の鉄槌は、名前に見合った外見を持つようになります。 ブラッドライン クロニクル トゥームオブナイトのMold Reaperは以前ほどパワーを吸収しなくなります。 スプリットポゥ サガ 「Harclaveの聖櫃(ハークレーヴの試練)」でエンカウンター毎に得られる経験値は減少しますが、クエストを完了した際に得られる経験値は増加します。戦利品がドロップされる確率は以前より低くなります。クエストは1レベルに1度しか完了させることはできませんが、新しいプレイヤーがノールの信頼を得られやすくするため、再入場までの時間は8時間へと短縮されます。クエストの難易度はレベル20から50までの間で変化します。 ベテラン報奨 ベテラン報奨で得られる全てのWand of Restorationは、傷付いたアイテムをいつでも修理できるどこでも修理キットに置き換えられます。 1チャージのどこでも修理キットでメンダーに修理してもらうのと同等の効果を得ることができます。 Wand of Restorationのチャージ回数が、どこでも修理キットのチャージ回数へと持ち越されます。例えば、Wand of Restorationの3チャージ中2チャージを使用済みの場合には、どこでも修理キットのチャージは1になります。 Wand of Restorationを/claim済みかつ消費済みの場合には、/claimで新たにどこでも修理キットを受け取ることはできません。どこでも修理キットはWand of Restorationの代わりになるアイテムで、追加されるアイテムではありません。 ゲームプレイ プレイヤーキャラクターが走る際の基本速度が速くなります。この変更により、騎乗時や移動速度上昇の強化呪文を使用した際の総合的な速度も上昇します。(Happy feet…) キャラクターが死亡した際に、スピリットシャードを落とすことがなくなります。死亡した場合は、アイテムのコンディションが低下し、全レベルを通して一定の割合の保留経験値が発生します。保留経験値の最大値は50%です。 グループメンバーの一人がエンカウンターと戦闘状態になったとしても、他のグループメンバーにヘイトが発生することはなくなります。 エンカウンターと戦闘状態になったプレイヤーが死亡する、もしくは死んだふりをした場合に、他のグループメンバーがヘイトを発生させる行動をとっていなければ、そのエンカウンターは解除されます。特定の知恵があり強力な敵は、引き続きあなたのレイドに関する情報を全て持っており、それに従って行動します。 レベル52以上のキャラクターは経験値を10%得るごとに正常にスキルが上昇するようになります。 1時間毎に得られる戦闘及び生産スキル経験値のバイタリティが、中レベル帯では若干減少し、高レベル帯では大幅に減少します。 クエスト エンチャントランドのレザーフット物語の本を処分してしまった場合には、Deputy Stoutgutに話し掛けることで再度入手することができます。 ゼック島のLeelee Brewbubbleは彼女のために試薬を集める人の選択を若干こだわらなくなります。 クエスト「“恐怖”のハート」は正常に更新されるようになります。 Tarby Boulderboomに右クリックで話し掛けられるようになります。 黒の海のボートで、クエスト「司祭を死守せよ!」を完了させたプレイヤーは、サンダリングステップのScholar Milnikjから報酬を受け取れるようになります。 ヘリテージクエスト「スクリーミング・メイス」を開始するためのアイテムは、宝箱からではなく死体からドロップするようになります。 クエスト「ベイルテールのジョッキを求めて」は完了できるようになります。 クエスト「泥の樽」は完了できるようになります。 クエスト「ラニーアイの厄介者」は完了できるようになります。 クエスト「ラニーアイの秘密」は完了できるようになります。 クエスト「ひとつ摘んでは……」のクエストジャーナルの内容はより明確なものになります。 クエスト「テラニウス・メノニウスの台帳」において、Void GeneratorではなくAwaiting Vesselsを殺すよう変更されます。 クエスト「海賊のイヤリング」で、ケイノス市民がGirafer L Unに話し掛けられるようになります。 クエスト「紛失した小包」で、ケイノス市民がBendlに話し掛けられるようになります。 クエスト「Jezranazのロケット」のレベルによる制限はなくなります。 Captain Wougのクエストを完了させることにより適切なファクションが上昇するようになります。 セレスティアル・ウォッチのグループシティタスクはChancellorで正常に更新されるようになります。 Lieutenant D Rakaから受けることができるソロ用シティタスクは、Sul Dal Infiltratorで正常に更新されるようになります。 「アシェン・オーダーへの貢献」、「アシェン・ディサイプルからの指令」、「シン・ホーの試練場」、「Trials of Ash」を完了した際、以前より多くのファクションを得られるようになります。 Sergeant Tuskinから受けることができるクエスト「困った預言者」を再度完了することができるようになります。 Elon Gallwinから受けることができるシティタスクを完了すると適切なファクションが上昇するようになります。 シティタスクを完了した場合には、シティタスクを受けた派閥のファクションが上昇したことを知らせるメッセージが表示されるようになります。 レベル50以上のシティタスクは、ギルドレベルが2以上のギルドに所属している場合にのみ受けることができるようになります。 アイテム 宝箱は中身の品質により、異なったものを得られるようになります。(カッパー、シルバー、ゴールド、ゴールドと宝石) 乗り物を召喚する時間が短縮されます。 アイテム「詐欺師の服装」の潜在的な力が開放されます! ヘリテージクエストで使用される破壊不可のアイテムは処分できるようになります。アイテムを処分してしまった場合に、再度クエストを開始する場合には、クエストを削除する必要があります。 犬、猫、豚などの普通の家用ペットは破壊不可アイテムではなくなります。 「収集したオーブ」はスキルの上昇効果を持つようになります。 Mantle of Deceiving Beautyは適切なグラフィックが表示されるようになります。 特定のクリーチャーが呪文スクロールをドロップする確率が減少します。 Keeper s Robe of QuiescenceとEthereal Shield of Silenceは再度正常に機能するようになります。 魔神のガーディアン・バルビュートはより名前に見合った外見を持つようになります。 ゾーンとNPC ほとんどのヒューマノイドではないクリーチャーは(意図されている場合を除いて)プレイヤーが使用する呪文やコンバットアーツを使用しなくなります。その代わりに、独自の有益なアビリティを使用するようになります。もし、子鹿がアイス・コメットを使用している場合は教えてください! Sootfoot Goblinたちはラヴァストームの入り口のトンネルに今までよりも弱い見張り番を配置するようになります。 ストームホールド内でエピックx2エンカウンターが出現し、徘徊することはなくなります。 グループ内で一人でもクエスト「Maltenaよ安らかに眠れ」を完了させていれば、グループ全体がネクトロポス城:帰還に入ることができるようになります。 一人のプレイヤーがコート・オブ・トゥルースから出た場合に、全てのグループメンバーがゾーンから出されることがなくなります。 難民の島とエンチャントランドの浅い川を泳いでいる魚に攻撃した際、即座にエンカウンターが解除されることはなくなります。戦闘のために陸の上まで短い距離を追いかけてくることがあります。 ギルドレイドはプレイヤーのレベルに合わせて適切に調整されるようになり、ゾーンに入る際にギルドレイドにあった行き先のみ表示されるようになります。 多くのクリーチャーのアビリティが調整または修正されました。例えば、時間経過によりダメージを与える効果は、その呪文を詠唱したクリーチャーが死亡した場合、キャンセルされるようになります。 マスのシーズンに合わせてエンチャントランドの湖に大きなValetail Troutが仕入れられます! エピック・エンカウンター カース・オブ・インサニティの効果はより致命的なものになります。この効果を受けている場合にはアイコンが表示されるようになります。 呪文とコンバットアーツ オオカミのスピリットトーテムの移動速度上昇効果は、他の呪文やスキルの移動速度上昇効果と重なることがなくなります。 シグネット・オブ・インチュイション(エンチャンター)、シグネット・オブ・インサイト(コウアーサー)、ルーン・オブ・アンダースタンディング(イリュージョニスト)が効果を発揮している場合に、これらの同系統の呪文を詠唱できなくなることはなくなります。 呪文を詠唱中にターゲットが射程外に出た場合には、呪文は自動的にインタラプトされるようになります。 詠唱中の呪文やコンバットアーツは、詠唱が完了した際に対象が15メートル以内または、射程距離の2倍の距離以内にいる場合に命中します。詠唱開始時の射程距離に変更はありません。 チャームしたペットで戦闘を開始した場合に、戦闘の途中でチャームが解除されても、戦闘による報酬を受け取ることができるようになります。 チャーム、攻撃的な範囲呪文、ブレスのような固有の能力は反射できなくなります。 ターゲットが死亡した場合に効果を発動する呪文(テンプラーのアトニング・フェイトなど)は正常に機能するようになります。以前はターゲットがProcにより死亡した場合に効果を発動していませんでした。 ※Proc:攻撃時、および攻撃を受けた際などに時々発動する特殊効果の総称 Tから始まる名前のキャラクターのペットは適切な名前になります。 NPCが使用しているターゲットの移動速度を減少させる呪文が移動速度を上昇させていた問題が修正されます。 ペットがWater elemental、Fire elemental、Plague rat、Hyenaなどのクリーチャーのアビリティを使用することはなくなります。 ブルーザーの変更: ラフハウスのProc効果は装備している武器の種類に応じたダメージを与えるようになります。 パラディンの変更: コンセクレートの名称は、スクロールの名前やレシピの名称と一致するよう変更されます。 ブレス・オブ・ペニテントはアイテムの材料をProcする確率が減少します。 召喚されたスクワイアは、パラディンがゾーンを移動しても消滅することがなくなります。 ウィザードの変更: サージング・テンペストはダメージを与えるたびにレジストされる確率が減少します。 フレイムタンのProc効果は、発動しているプレイヤーのパワーを消費しなくなります。 イリュージョニストの変更: フリーティング・ソートは集中力と詠唱のスキルを大幅に上昇させます。 サヴァンテがインビジビリティを解除することはなくなります。 コンジュラーの変更: キャッツアイの詳細説明文はタートル・アイに属したものではなくなります。猫は亀ではないためです ネクロマンサーの変更: Servile Soulはレベルにあわせて成長するようになります。 テンプラーの変更: アンイールディング・ベネディクションのProc効果は、再度物理ダメージを吸収するようになります。 ミスティックの変更: アンブラル・アテンダントの回復効果が上昇します。呪文のアップグレードを行った場合も大幅に効果が上昇します。 エンシェント・バームの呪文スクロールは、適切なアップグレードを参照するようになります。 デファイラーの変更: スピリチュアル・サークルのペットの外見は回転しながら光る物体に変更されます。 スワッシュバックラーの変更: へイル・オブ・スティールで発生するヘイトが減少します。また、アップグレードに伴い更に発生するヘイトが減少します。 2人目のスワッシュバックラーがへイル・オブ・スティールを使用しても、最初の効果がキャンセルされることはなくなります。 ブリガンドの変更: スナールはレベルの上昇に伴い正常にアップグレードされるようになり、初期のスネア効果が強化されます。 レンジャーの変更: ストリーム・オブ・アローで発生するヘイトが減少します。また、アップグレードに伴い更に発生するヘイトが減少します。 2人目のレンジャーがストリーム・オブ・アローを使用しても、最初の効果がキャンセルされることはなくなります。 アサシンの変更: コンシールメントはアップグレードに伴い、発生するヘイトを減少させる効果が上昇するようになります。 トレードスキル 評価色が低緑のレシピでも、再度経験値を得ることができるようになります。 シルヴァン・タッチのレシピは、その希少度に合った本に含まれるようになります。 ウェポンスミスの基礎 第21巻に墨鉄製のフォイルと墨鉄製の戦斧のレシピが追加されます。 シャドウスリップのレシピはレベル47のジュエラーの本に含まれるようになります。 テイラーの応用 第51巻から重複していたレシピが削除されます。 アーティザンの基礎第6巻にブリキ製の投擲用ハンマーのレシピが追加されます。 小さな破れ目のある材料は締め、縫合、たくし込み、装飾加工で対応できるようになります。 セイジのヴリアン・インターフェアレンスのレシピは、呪文を習得するレベルに見合うよう、レベル38の基礎と応用の本に含まれるようになります。 スチールアローのレシピは適切な主要材料を使用するようになります。 ジュエラーのサンドクロスの布は、使用するスキルに見合った適切なイベントが発生するようになります。 セイジのインテンシファイのレシピは、呪文を習得するレベルに見合うようレベル35の基礎と応用の本に含まれるようになります。 スカラーのスティング・スウォームのレシピは、呪文を習得するレベルに見合うよう、レベル11の基礎と応用の本に含まれるようになります。 スカラーのシンボル・オブ・トランザルのレシピは、呪文を習得するレベルに見合うよう、レベル16の基礎と応用の本に含まれるようになります。 レベル54アルケミストのレシピ、クエリング・ブロウの名前は、コンバットアーツの名前に合わせてクエリング・ストライクに変更されま す。 セイジのレシピ、トランセンデント・ブレッシングの名前は、呪文の名前に合わせてトランセンデント・グレイスに変更されます。 魔力が込められたブライアーウッド製の棒のレシピは、適切なレベルの燃料を使用するよう調整されます。 魔力が込められたブライアーウッド製の戦闘用バトンのレシピは、適切なレベルの燃料を使用するよう調整されます。 魔力が込められたブライアーウッド製の大杖のレシピは、適切なレベルの燃料を使用するよう調整されます。 魔力が込められたブライアーウッド製の六尺棒のレシピは、適切なレベルの燃料を使用するよう調整されます。 黒檀鋼製のグレートスピアと緑鉄製のグレートスピアのレシピは、レベル41と42のレシピからレベル47のレシピへと変更されます。 セイジのサフォケート・クラウドのレシピは、呪文を習得するレベルに見合うよう、レベル28の基礎と応用の本に含まれるようになります。 セイジのダーク・パクトのレシピは、呪文を習得するレベルに見合うよう、レベル26の基礎と応用の本に含まれるようになります。 レシピの難易度が青色の次に灰色になることはなくなります。 完璧な品質の魔力が込められた黒化鉄製のクレッセントアックスの名前は修正されます。 サモン・シャドウはアップグレードできないため、レシピは削除されます。 黄銅のアローのレシピは適切な主要材料を使用するようになります。 青鉄製のグレートスピアはレベル37のレシピになります。 魔力が込められたトネリコ製の大杖は適切な燃料を使用するようになります。 レベル38のセイジのレシピ、テルリアン・ベテランは、呪文の名前に合わせてテルリアン・アヴェンジャーに変更されます。 魔力が込められたトネリコ製の六尺棒のレシピは適切な燃料を使用するようになります。 魔力が込められたトネリコ製の棒のレシピは適切な燃料を使用するようになります。 魔力が込められたトネリコ製の魔法使いの杖のレシピは適切な燃料を使用するようになります。 完璧な品質の魔力が込められた青鉄製のスピアの名前は適切なものに修正されます。 スカラーのレシピ、スマグラー・タレントの名前は、呪文の名前に合わせてステイ・ロウに変更されます。 カーペンターの「骨製の戦棍棒」のレシピは、魔力が込められたものが完成するかのように誤記されていたものが修正されます。 アーマラーの基礎第49巻には、レシピが存在しないため削除されます。 パラディンの火鉢は加工された品質の製品も作成できるようになります。 セイジのレシピのレベルは以下のとおり調整されます。(旧レベル、新レベル) ブレイズ・インティミデーション(27、30) ヴァイル・インプリケーション(28、31) フラッシュフリーズ(29、30) アコーダント・スピリット(43、41) ドゥーミング・スワーム(43、45) ザレット・コンヴィクション(43、42) アビズマル・フューリー(44、42) フェイスフル・ミニストレーション(44、43) フェラル・テナシティ(44、41) インフェルノ(44、42) ルイナス・インプリケーション(44、45) シルフ(44、41) トランスフェレンス(44、41) ベールフル・エフラックス(45、44) ディスメイ(45、50) フェラル・サルヴ(45、43) フレイムシールド(45、50) ニヒリズム(45、50) ラヴィッジ・サイケ(45、50) サイフォン・ライフ(45、50) トラス(45、47) アスペクト・オブ・ダークネス(46、49) クラリティ(46、47) フェリン・マスク(46、47) ファイヤーリー・ドゥーム(46、45) フレイムストライク(46、43) ヒート・コンヴァルジョン(46、45) ロボトマイズ(46、45) フェリン・エリクサー(47、46) ヴリアン・ギフト(49、47) プレイヤーが作成したブリキ製の湾刀の性能は上昇します。 スカラーの基礎と応用第15巻にシルヴァン・タッチのレシピが追加されます。 クラフトマンのレシピ、カエデ製の杖のレベルと難易度は12から19に変更されます。 セレブラル・スパズムのレシピは、レベル15からレベル10に変更されます。このレシピはセイジの基礎と応用第11巻に含まれるようになります。 シャドウスリップのレシピは、レベル33から47に変更されます。このレシピはジュエラーの基礎と応用第47巻に含まれるようになります。 滴下は適切なイベントに対応できるようになります。 彫り込まれた皮製の頭巾のレシピは適切な主要材料を使用するようになります。 地質学レベル51の染め込み系統のリアクションアーツの名前は、他の同じ名称のリアクションアーツとの混同を避けるため、滴下から埋め込みに変更されます。 グラフィック 多くの回復呪文で表示されるグラフィックエフェクトは、見通しが利くようこれまでほど派手ではなくなります。 プレイヤーが作成したレベル50のレジェンダリ皮製鎧の色合いは濃くなり、脚の鎧からはスカートがなくなります。 以下の鎧のグラフィックが変更されます。 Ancient Legplates of Ro Ancient Vambraces of Ro Barbute of Glowing Runes 忠僕のバルビュート Benthafs Head Protector Blighted Ivy Leggings Boots of Many Shadows 理知のブーツ 信奉者のブーツ Boots of the Revenant Bracers of Betrayal Bracers of Command Bracers of Many Shadows Bracers of Swirling Energy デューン・ストライダーのブレイサー Bracers of the Lost Eye Cap of Ethereal Foci カリフのキャップ Captain Feyns Chain Wristguards Chestguard of Swirling Energy Chestguard of the Revenant Circlet of Living Fire Circlet of the Spirits Circlet of True Sight Coat of the Forbidden Lyricist Coif of Many Shadows Coif of the Lost Eye シャドウストーカーのコイフ 氷で鍛えられたバルビュート Cold-forged Breastplate 氷で鍛えられた力のグリーヴ 氷で鍛えられた力のガセット 氷で鍛えられた力のサバトン 氷で鍛えられたスポールダー Crafted Cobalt Cafted Ebon ローのクリムゾン・ガントレット ローのクリムゾン・サバトン カフス・オブ・ロー Cuirass of the Daywalker Cuirass of the Djinn Dark League Coat ドラゴンハイド・スカルキャップ Drape of Silent Screams Drape of the Revenant エルフ製の力のグラブ エントウッド・ショルダーパッド 猛毒に染まった集中のコイフ Flared Plate Spaulders of Ro 忘れ去られたブラッドメイガスのグラブ 利他のガントレット Gauntlets of Rejuvenation Gauntlets of the Pharaoh Glistening Scale Coat of the Nightwalker Glistening Scale Tunic of the Nightwalker ヒヴァイトゥの輝かしい黄金のガントレット ヒヴァイトゥの輝かしい黄金の兜 ヒヴァイトゥの輝かしい黄金のスポールダー 見えざる強さのグラブ Gloves of the Daywalker Gloves of the Undying 黄金竜の鱗のブーツ 黄金竜の鱗のブレイサー 黄金竜の鱗のコイフ 黄金竜の鱗のグラブ パラノイア・グリーヴ 魔神のガーディアン・バルビュート Gussets of Deflection 理力のガセット デイウォーカーのハンドガード Helm of Ancient Wisdom Helm of Dark Sanctity Helm of the Cursed ヘルム・オブ・プロテクター Hyvaitos Gold Woven Shoulder Pads Hyvaitos Gold Woven Wristguards Immovable Barbute Knolusamuts Gauntlets アラズルのレザーグラブ 仲裁のレギング 暗殺のレギング 良心のレギング 凶兆のレギング 訓話のレギング コインのレギング Leggings of the Greenwood 識者のレギング 命なき者のレギング Legplates of Sphinxs Wisdom Legplates of the Righteous ライオンの彫り物のあるバルビュート ライオンの彫り物のあるガントレット Lockjaw Hide Vest 星陰のメイルブーツ 星陰のメイルコート ヴォイドウォーカーのメイルグラブ 星陰のメイルヘルム 星陰のメイルリストガード Mantle of Deceiving Beauty 常闇のマントル 炎のマントル Mantle of Many Shadows Mithril Alloy Gauntlets チャンピオンのミスリルスポールダー Nightfall Coat of the Scoundrel 暗黒の祈祷のポールドロン Pauldrons of the Martyr Prismatic Scale Boots ミスティックのリングメイル・チュニック Rune Scrawled Gauntlets Sciminestras Handguards 不屈のシージング・ブレイサー 不屈のシージング・レギング コインの輝くブーツ Shoulder Pads of Natures Glory Shoulder Pads of the Dark Disciple 白銀竜の鱗のブレストプレート 白銀竜の鱗のトンレット 白銀竜の鱗のヴァンブレイス Skullcap of Precision Sullcap of the Dark Disciple ナイトウォーカーのスカルキャップ 過ぎ去りし栄光のスポールダー Terror Wrought Mantle Totemic Mithril Helm Truesilver Coif Truesilver Tunic Tunic of the Lost Eye Tycozamoukhs Skullcap Vehemence Laced Handguards ワイルドウッド・ツイストグラブ Wildwood Twisted Leggings ワイルドウッド・ツイストショルダーパッド ワイルドウッド・ツイストスカルキャップ Wish-forged Barbute Wish-forged Pauldrons Wristguards of Natures Wish Wristguards of the Revenant Zealots Pauldrons オーディオ ジャンプと攻撃時の音声が繰り返し再生されることがなくなります。 コマンド、コントロール、ユーザーインターフェース ホットバーのアイコンのサイズを変更できるようになります。ホットバーを右クリックして「アイコンのサイズを設定」を選択した後、ス ライダーでアイコンのサイズを調整することができます。 /emoteコマンドを使用した際に、キャラクターの名前が正常に表示されるようになります。 チャームスロットのアイテムや、詠唱することができる効果を持つ装備品は、呪文と同じように再使用タイマーと距離による詠唱の可否を 表示するようになります。オプションのユーザーインターフェース インベントリー アイテムの再使用タイマーを表示 から変更することができます。 アドオンモデルがオンの状態で作成されたキャラクターは正常に外見を変更できるようになります。外見の変更を保存しても表示上変化が なかったアドオンモデルのキャラクターの外見は、最近行った変更で表示されるようになります。 キャラクター情報ウィンドウのファクションタブは、ファクションの値とファクションに対する立場を表示するようになります。 ローブを着用している際に、/showhoodを使用してフードを下げているときの頭部装備の表示/非表示を切り替えられるよう、/showhelmコマンドが追加されます。このコマンドは/showhoodと/showhelmの機能が統一されるまで、一時的に使用できるようにしたものです。 右クリックのコンテキストメニューから各ウィンドウを閉じることができるようになります。ウィンドウのフレームを非表示にしている場合に有用です。 /whoコマンドを使用して、特定のアーティザンクラスをレベルで検索することができるようになります。「/who all alchemist 50 60」と入力した場合にレベル50から60のアルケミストを検索できるようになります。 インベントリー内にある家に設置できるアイテムをダブルクリックすることで、アイテムを設置できるようになります。 コレクションアイテムを採集した際に表示されるアイテムリンクをクリックすることで、クエストジャーナルのコレクションタブが表示されるようになります。 住居ウィンドウに設置されているアイテムの数が表示されるようになります。 「アイテムを集める」ウィンドウにアイコン、ツールチップ、レントステータス軽減値、設置されている場所が表示されるようになります。 名前に「’」を含むアイテムも正常にアイテムリンクが機能するようになります。 コンパスや時計ウィンドウのウィンドウ透過クリックオプションが機能するようになります。 オンスクリーンメッセージウィンドウはデフォルトでウィンドウ透過クリックがオンになります。 ログインウィンドウで数字を入力する際にテンキーを使用できるようになります。 住居内のアイテムの設置場所のリストは正確な場所を表示するようになります。 レントステータス軽減の名称はステータス軽減に変更されます。 カスタムUI ユーザーインターフェースの各ウィンドウのバージョンを知ることができるようになります。 /window_version [Module] [Name]コマンドを使用することで、指定したウィンドウのバージョンが表示されます。 また、詳細なバージョンの情報を表示するプロパティがユーザーインターフェースウィンドウ上に追加されています。 version="[major].[minor].[revision]" 「major」の値が一致しない場合には、ウィンドウは表示されません。(例:ゲーム内のバージョンが2.0.0の場合に、改造しているバージョンが1.0.0の場合はウィンドウが表示されません。) 「minor」の値が一致しない場合は、ウィンドウは表示されますが、一部の機能が正常に動作しない場合があります。 「revision」の値が一致しない場合には、ウィンドウのグラフィックが変更されていることを意味します。 ユーザーインターフェース作成者の属性とコメントを入力するための新しいプロパティが追加され、「/window_version version_note="[text]"」で表示することができます。 更新されたUIファイル eq2ui_hud.xml eq2ui_hud_slider.xml (新規ファイル) eq2ui_mainhud_clock.xml eq2ui_mainhud_compass.xml eq2ui_mainhud_hotkey.xml eq2ui_mainhud_persona.xml eq2ui_playerhousing.xml eq2ui_popup.xml eq2ui_popup_houseitems. EverQuest is a registered trademark of Sony Computer Entertainment America Inc. in the United States and/or other countries. (C) 2005 Sony Computer Entertainment America Inc. All Rights Reserved.
https://w.atwiki.jp/takaidohigasi/pages/29.html
- 人目 ( ̄ー ̄)/~~ アリガトネ MySQL5.5 リファレンス 2. MySQLのインストールおよびアップグレード ORIGINAL http //dev.mysql.com/doc/refman/5.5/en/installing.html MySQLのインストールおよびアップグレード 目次 2.1. 共通インストールガイド 2.2. Installing MySQL from Generic Binaries on Unix/Linux 2.3. Installing MySQL on Microsoft Windows [+/-] 2.4. Installing MySQL on Mac OS X [+/-] 2.5. Installing MySQL on Linux [+/-] 2.6. Installing MySQL on Solaris and OpenSolaris [+/-] 2.7. Installing MySQL on HP-UX [+/-] 2.8. Installing MySQL on FreeBSD 2.9. Installing MySQL from Source [+/-] 2.10. Postinstallation Setup and Testing [+/-] 2.11. Upgrading or Downgrading MySQL [+/-] 2.12. Environment Variables 2.13. Perl Installation Notes [+/-] This chapter describes how to obtain and install MySQL. A summary of the procedure follows and later sections provide the details. If you plan to upgrade an existing version of MySQL to a newer version rather than install MySQL for the first time, see Section 2.11.1, “Upgrading MySQL”, for information about upgrade procedures and about issues that you should consider before upgrading. If you are interested in migrating to MySQL from another database system, you may wish to read Section B.8, “MySQL 5.5 FAQ Migration”, which contains answers to some common questions concerning migration issues. Determine whether MySQL runs and is supported on your platform. Please note that not all platforms are equally suitable for running MySQL, and that not all platforms on which MySQL is known to run are officially supported by Oracle Corporation Choose which distribution to install. Several versions of MySQL are available, and most are available in several distribution formats. You can choose from pre-packaged distributions containing binary (precompiled) programs or source code. When in doubt, use a binary distribution. We also provide public access to our current source tree for those who want to see our most recent developments and help us test new code. To determine which version and type of distribution you should use, see Section 2.1.2, “Choosing Which MySQL Distribution to Install”. Download the distribution that you want to install. For instructions, see Section 2.1.3, “How to Get MySQL”. To verify the integrity of the distribution, use the instructions in Section 2.1.4, “Verifying Package Integrity Using MD5 Checksums or GnuPG”. Install the distribution. To install MySQL from a binary distribution, use the instructions in Section 2.2, “Installing MySQL from Generic Binaries on Unix/Linux”. To install MySQL from a source distribution or from the current development source tree, use the instructions in Section 2.9, “Installing MySQL from Source”. Perform any necessary postinstallation setup. After installing MySQL, read Section 2.10, “Postinstallation Setup and Testing”. This section contains important information about making sure the MySQL server is working properly. It also describes how to secure the initial MySQL user accounts, which have no passwords until you assign passwords. The section applies whether you install MySQL using a binary or source distribution. If you want to run the MySQL benchmark scripts, Perl support for MySQL must be available. See Section 2.13, “Perl Installation Notes”. Instructions for installing MySQL on different platforms and environments is available on a platform by platform basis Unix, Linux, FreeBSD For instructions on installing MySQL on most Linux and Unix platforms using a generic binary (for example, a .tar.gz package), see Section 2.2, “Installing MySQL from Generic Binaries on Unix/Linux”. For information on building MySQL entirely from the source code distributions or the source code repositories, see Section 2.9, “Installing MySQL from Source” For specific platform help on installation, configuration, and building from source see the corresponding platform section Linux, including notes on distribution specific methods, see Section 2.5, “Installing MySQL on Linux”. Solaris and OpenSolaris, including PKG and IPS formats, see Section 2.6, “Installing MySQL on Solaris and OpenSolaris”. IBM AIX, see Section 2.6, “Installing MySQL on Solaris and OpenSolaris”. Hewlett-Packard HP-UX, including the DEPOT package format, see Section 2.7, “Installing MySQL on HP-UX”. FreeBSD, see Section 2.8, “Installing MySQL on FreeBSD”. Microsoft Windows For instructions on installing MySQL on Microsoft Windows, using either a Zipped binary or an MSI package, see Section 2.3, “Installing MySQL on Microsoft Windows”. For information on using the MySQL Server Instance Config Wizard, see Section 2.3.5, “MySQL Server Instance Configuration Wizard”. For details and instructions on building MySQL from source code using Microsoft Visual Studio, see Section 2.9, “Installing MySQL from Source”. Mac OS X For installation on Mac OS X, including using both the binary package and native PKG formats, see Section 2.4, “Installing MySQL on Mac OS X”. For information on making use of the MySQL Startup Item to automatically start and stop MySQL, see Section 2.4.3, “Installing the MySQL Startup Item”. For information on the MySQL Preference Pane, see Section 2.4.4, “Installing and Using the MySQL Preference Pane”. IBM i5/OS
https://w.atwiki.jp/sevenlives/pages/951.html
ワイルドカード(MySQL)
https://w.atwiki.jp/doctorine/pages/13.html
Introduction Getting Started Introduction to Connections Configuration Connections Introduction to Models Defining Models Working with Models DQL (Doctrine Query Language) Component Overview Native SQL YAML Schema Files Data Validation Inheritance Behaviors Searching Hierarchical Data Data Fixtures Database Abstraction Layer Transactions Event Listeners Caching Migrations Utilities Unit Testing Improving Performance Technology Exceptions and Warnings Real World Examples Coding Standards
https://w.atwiki.jp/sampleisbest/pages/163.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 プロジェクト プロジェクト名 ListView アプリケーションの種類 Windows アプリケーション 追加のオプション 空のプロジェクト 文字セット Unicode 注意 元のファイルが失われる恐れがあるので、必要なファイルは必ずバックアップを取ってください。 参考 リストビューの基礎 ListView.cpp // Unicode #include Windows.h #include CommCtrl.h #include sqlext.h #include vector #include string #include "resource.h" #define DRIVER TEXT("Microsoft Text Driver (*.txt; *.csv)") #define DATABASE TEXT("C \\tmp") #define TABLE TEXT("09TOCHIG.CSV") #define TABLE2 TEXT("09TOCHIG_.CSV") // 型定義 struct ColInfo {// 列情報 std wstring strName;// 列名 SQLSMALLINT datatype;// データ型 }; typedef std vector ColInfo VecCI; // 関数プロトタイプ宣言 INT_PTR CALLBACK MainDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); void OnNmDblClk(HWND hDlg, LPARAM lParam); void OnInitDialog(HWND hDlg); void LoadTable(HWND hDlg); void SaveTable(HWND hDlg); BOOL CreateTable(void); BOOL InsertRecord(void); INT_PTR CALLBACK SubDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); void OnSubInitDialog(HWND hDlg); void OnOK(HWND hDlg); // 外部変数構造体 static struct { HINSTANCE hInstance; HWND hList;// リストビュー SQLHENV henv;// 環境ハンドル SQLHDBC hdbc;// 接続ハンドル VecCI vecci;// 列情報 int iItem;// 指定された行 } g; //============================================================================== int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int) { // ODBC環境ハンドルの確保 SQLRETURN rc;// retcode rc = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, g.henv); rc = SQLSetEnvAttr(g.henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); g.hInstance = hInstance; DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, MainDlgProc); SQLFreeHandle(SQL_HANDLE_ENV, g.henv); return 0; } //------------------------------------------------------------------------------ INT_PTR CALLBACK MainDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { INT_PTR nRet = TRUE;// メッセージを処理した switch (uMsg) { case WM_NOTIFY switch (((LPNMHDR)lParam)- idFrom) { case IDC_LIST switch (((LPNMLISTVIEW)lParam)- hdr.code) { case NM_DBLCLK OnNmDblClk(hDlg, lParam); break; } break; } break; case WM_COMMAND switch (LOWORD(wParam)) { case IDC_UPDATE int nr; nr = MessageBox(hDlg, L"CSVファイルを更新しますか?", L"確認", MB_OKCANCEL); if (nr == IDOK) { SaveTable(hDlg); MessageBox(hDlg, L"完了しました。", L"報告", MB_OK); } break; case IDCANCEL EndDialog(hDlg, IDCANCEL); break; } break; case WM_INITDIALOG OnInitDialog(hDlg); nRet = TRUE;// SetFocusでフォーカスを設定した場合はFALSE break; case WM_CLOSE EndDialog(hDlg, 0); break; case WM_DESTROY SQLDisconnect(g.hdbc); SQLFreeHandle(SQL_HANDLE_DBC, g.hdbc); break; default nRet = FALSE;// メッセージを処理しなかった } return nRet; } //------------------------------------------------------------------------------ void OnNmDblClk(HWND hDlg, LPARAM lParam) { LPNMLISTVIEW plv = (LPNMLISTVIEW)lParam; g.iItem = plv- iItem; DialogBox(g.hInstance, MAKEINTRESOURCE(IDD_SUB), hDlg, SubDlgProc); } //------------------------------------------------------------------------------ void OnInitDialog(HWND hDlg) { // リストビュー拡張スタイル g.hList = GetDlgItem(hDlg, IDC_LIST); DWORD dwExStyle = ListView_GetExtendedListViewStyle(g.hList); dwExStyle |= LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES; ListView_SetExtendedListViewStyle(g.hList, dwExStyle); // テーブルの読み込み LoadTable(hDlg); } //------------------------------------------------------------------------------ void LoadTable(HWND hDlg) { SQLHSTMT hstmt;// 命令ハンドル SQLSMALLINT col; SQLSMALLINT n; SQLSMALLINT datatype; SQLTCHAR buf[256]; SQLLEN len; SQLRETURN rc;// retcode // データベースへの接続 rc = SQLAllocHandle(SQL_HANDLE_DBC, g.henv, g.hdbc); rc = SQLDriverConnect(g.hdbc, NULL, (SQLTCHAR *) TEXT("driver={") DRIVER TEXT("}; dbq=") DATABASE, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT); if (!SQL_SUCCEEDED(rc)) { return; } // 検索 rc = SQLAllocHandle(SQL_HANDLE_STMT, g.hdbc, hstmt); rc = SQLExecDirect(hstmt, (SQLTCHAR *) TEXT("select * from ") TABLE, SQL_NTS); if (!SQL_SUCCEEDED(rc)) { return; } // 列情報 LV_COLUMN lvCol; lvCol.mask= LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; lvCol.fmt= LVCFMT_LEFT; lvCol.cx= 100; rc = SQLNumResultCols(hstmt, col); g.vecci.reserve(col); for (n = 0; n col; n++) { rc = SQLDescribeCol(hstmt, n+1, buf, _countof(buf), NULL, datatype, NULL, NULL, NULL); lvCol.pszText= buf; lvCol.iSubItem= n; ListView_InsertColumn(g.hList, n, lvCol); // 列情報 ColInfo ci; ci.strName= buf; ci.datatype= datatype; g.vecci.push_back(ci); // Text 12 SQL_VARCHAR // Byte -6 SQL_TINYINT } // 行情報 LV_ITEM lvItem; lvItem.mask= LVIF_TEXT; lvItem.iItem= 0; while (1) { rc = SQLFetch(hstmt); if (rc == SQL_NO_DATA) break; if (rc == SQL_ERROR) break; for (n = 0; n col; n++) { SQLGetData(hstmt, n+1, SQL_C_TCHAR, buf, _countof(buf), len); lvItem.pszText= buf; lvItem.iSubItem= n; if (n == 0) { ListView_InsertItem(g.hList, lvItem); } else { ListView_SetItem(g.hList, lvItem); } } lvItem.iItem++; } SQLFreeHandle(SQL_HANDLE_STMT, hstmt); } //------------------------------------------------------------------------------ void SaveTable(HWND hDlg) { // テーブルの作成 if (CreateTable() == FALSE) { MessageBox(hDlg, L"テーブルの作成に失敗しました。", NULL, MB_OK); return; } // レコードの挿入 if (InsertRecord() == FALSE) { MessageBox(hDlg, L"レコードの挿入に失敗しました。", NULL, MB_OK); return; } // CSVファイルの削除とリネーム TCHAR szOld[MAX_PATH]; TCHAR szNew[MAX_PATH]; swprintf_s(szOld, L"%s\\%s", DATABASE, TABLE); swprintf_s(szNew, L"%s\\%s", DATABASE, TABLE2); BOOL br; br = DeleteFile(szOld); br = MoveFile(szNew, szOld); if (br == FALSE) { MessageBox(hDlg, L"CSVファイルのリネームに失敗しました。", NULL, MB_OK); } } //------------------------------------------------------------------------------ BOOL CreateTable(void) { TCHAR stmttext[512]; SQLHSTMT hstmt;// 命令ハンドル SQLRETURN rc;// retcode rc = SQLAllocHandle(SQL_HANDLE_STMT, g.hdbc, hstmt); // テーブルの削除 wcscpy_s(stmttext, L"drop table "); wcscat_s(stmttext, TABLE2); rc = SQLExecDirect(hstmt, stmttext, SQL_NTS); // 失敗してもテーブルの作成が成功すれば問題ない // テーブルの作成 wcscpy_s(stmttext, L"create table "); wcscat_s(stmttext, TABLE2); wcscat_s(stmttext, L"("); VecCI iterator it = g.vecci.begin(); while (TRUE) { wcscat_s(stmttext, (*it).strName.c_str()); switch ((*it).datatype) { case SQL_VARCHAR wcscat_s(stmttext, L" Text"); break; case SQL_TINYINT wcscat_s(stmttext, L" Byte"); break; } if (++it == g.vecci.end()) { break; } wcscat_s(stmttext, L","); } wcscat_s(stmttext, L")"); rc = SQLExecDirect(hstmt, stmttext, SQL_NTS); SQLFreeHandle(SQL_HANDLE_STMT, hstmt); return SQL_SUCCEEDED(rc); } //------------------------------------------------------------------------------ BOOL InsertRecord(void) { SQLHSTMT hstmt;// 命令ハンドル SQLRETURN rc;// retcode BOOL bRet = TRUE; rc = SQLAllocHandle(SQL_HANDLE_STMT, g.hdbc, hstmt); int nColNum = g.vecci.size(); int nRowNum = ListView_GetItemCount(g.hList); for (int nRow = 0; nRow nRowNum; nRow++) { TCHAR stmttext[512]; wcscpy_s(stmttext, L"insert into "); wcscat_s(stmttext, TABLE2); wcscat_s(stmttext, L" values ("); for (int nCol = 0; ; ) { TCHAR szBuf[256]; ListView_GetItemText(g.hList, nRow, nCol, szBuf, _countof(szBuf)); switch (g.vecci[nCol].datatype) { case SQL_VARCHAR wcscat_s(stmttext, L" "); wcscat_s(stmttext, szBuf); wcscat_s(stmttext, L" "); break; case SQL_TINYINT wcscat_s(stmttext, szBuf); break; } if (nColNum = ++nCol) { break; } wcscat_s(stmttext, L","); } wcscat_s(stmttext, L")"); rc = SQLExecDirect(hstmt, stmttext, SQL_NTS); if (!SQL_SUCCEEDED(rc)) { bRet = FALSE; break; } } SQLFreeHandle(SQL_HANDLE_STMT, hstmt); // トランザクション終了 rc = SQLEndTran(SQL_HANDLE_ENV, g.henv, SQL_COMMIT); return bRet; } //============================================================================== INT_PTR CALLBACK SubDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { INT_PTR nRet = TRUE;// メッセージを処理した switch (uMsg) { case WM_COMMAND switch (LOWORD(wParam)) { case IDOK OnOK(hDlg); EndDialog(hDlg, IDOK); break; case IDCANCEL EndDialog(hDlg, IDCANCEL); break; } break; case WM_INITDIALOG OnSubInitDialog(hDlg); nRet = TRUE;// SetFocusでフォーカスを設定した場合はFALSE break; case WM_CLOSE EndDialog(hDlg, 0); break; default nRet = FALSE;// メッセージを処理しなかった } return nRet; } //------------------------------------------------------------------------------ void OnSubInitDialog(HWND hDlg) { int nFieldNum = g.vecci.size(); for (int n = 0; n nFieldNum; n++) { int y = 8 + 28 * n; TCHAR szBuf[256]; ListView_GetItemText(g.hList, g.iItem, n, szBuf, _countof(szBuf)); DWORD dwStyle = (g.vecci[n].datatype == SQL_TINYINT) ? ES_NUMBER 0; CreateWindow(L"static", g.vecci[n].strName.c_str(), WS_CHILD | WS_VISIBLE, 8, y, 192, 24, hDlg, (HMENU)IDC_STATIC, g.hInstance, 0); CreateWindowEx(WS_EX_CLIENTEDGE, L"edit", szBuf, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL | dwStyle, 208, y, 192, 24, hDlg, (HMENU)(IDC_FIELD + n), g.hInstance, 0); } } //------------------------------------------------------------------------------ void OnOK(HWND hDlg) { int nFieldNum = g.vecci.size(); for (int n = 0; n nFieldNum; n++) { TCHAR szBuf[256]; GetDlgItemText(hDlg, IDC_FIELD + n, szBuf, _countof(szBuf)); ListView_SetItemText(g.hList, g.iItem, n, szBuf); } } resource.h #define IDD_MAIN100 #define IDD_SUB101 #define IDC_STATIC-1 #define IDC_LIST1000 #define IDC_UPDATE1001 #define IDC_FIELD1100 ListView.rc // resource script #include windows.h #include "resource.h" //------------------------------------------------------------------------------ IDD_MAIN DIALOGEX 100, 100, 320, 200 STYLE WS_POPUPWINDOW | WS_MINIMIZEBOX EXSTYLE WS_EX_APPWINDOW CAPTION "ListView" FONT 9, "MS Pゴシック" BEGIN CONTROL"",IDC_LIST,"SysListView32", WS_BORDER | WS_TABSTOP | LVS_REPORT,8,8,304,160 PUSHBUTTON"更新",IDC_UPDATE,212,176,48,16 PUSHBUTTON"終了",IDCANCEL,264,176,48,16 END //------------------------------------------------------------------------------ IDD_SUB DIALOG 100, 100, 320, 400 STYLE WS_POPUPWINDOW CAPTION "SubDlg" FONT 9, "MS Pゴシック" BEGIN DEFPUSHBUTTON"OK",IDOK,212,376,48,16 PUSHBUTTON"Cancel",IDCANCEL,264,376,48,16 END
https://w.atwiki.jp/keroro00innovator/pages/486.html
ULTRA-DATE! ULTRA-DATE! アーティスト ULTRA-PRISM 発売日 2011年9月21日 レーベル ランティス 収録内容 曲名 タイアップ 視聴 1 ULTRA-DATE! 2 だだだだっしゅ!! 3 みらくる☆ちゃんす Rio RainbowGate! ED 4 www.in just night 5 るーるぶっくを忘れちゃえ そふてにっ OP 6 A.N.K.G (Instrumental) 7 侵略ノススメ☆ 侵略!イカ娘 OP 8 マジカル☆ちぇんじ! 9 Princess a la mode 10 Star☆tin’ 11 pinkish ~ふぉーちゅんはぁと~ 12 high☆space 13 A place of Love 14 ラブプレイス 15 みらくる☆ちゃんす (Swinging dimension Mix) 関連CD るーるぶっくを忘れちゃえ 侵略ノススメ☆
https://w.atwiki.jp/boatassist/pages/20.html
■DataTableManager DataTableManagerではTransactionScopeが使えない? Visual Studio 2008 で TableAdapterManager を TransactionScope 内で使用すると予期せぬ動作が生じる可能性がある http //support.microsoft.com/kb/951153/ja は!? どうやら、DataTableManager側でTransaction管理を行っているのが原因ぽいようです(間違ってたらスマン 今の案件で型付DataSetをDataTableManager使ってUpdateAllするメソッドがあるのだが、 Trasaction管理が下記のようになってる。 Logic →Transaction1 DataAccess → Transaction2 なので、これが使えない orz はて、どうしたものか…。 階層更新を自前でコーディング… そんなに工数ないし… DataTableMnagerからTableAdapterを取得→各TableAdapterのUpdateを実行させる …なんとも、あこぎなやり口ですが、以下の方法をとることに /// summary /// para TableAdapterクラスのDbDataAdapterを取得 /para /// /summary /// param name="adapter" 対象DataTableManager /param /// returns List DbDataAdapte /returns private List DbDataAdapter GetAdapters(object adapter) { List PropertyInfo pInfo = new List PropertyInfo () { }; List DbDataAdapter dbAdapter = new List DbDataAdapter () { }; Type type = adapter.GetType(); pInfo.AddRange(type.GetProperties()); pInfo.ForEach ( p = { object curObject = p.GetValue(adapter, null); if (curObject == null) return; DbDataAdapter curAdapter = GetAdapter(curObject); if (curAdapter == null) return; dbAdapter.Add(curAdapter); } ); return dbAdapter; } /// summary /// para TableAdapterクラスのDbDataAdapterを取得 /para /// /summary /// param name="adapter" 対象TableAdapter /param /// returns DbDataAdapter /returns private DbDataAdapter GetAdapter(object adapter) { Type type = adapter.GetType(); PropertyInfo adapterInfo = type.GetProperty("Adapter", BindingFlags.NonPublic | BindingFlags.Instance); if (adapterInfo == null) return null; DbDataAdapter dbAdapter = adapterInfo.GetValue(adapter, null) as DbDataAdapter; if (dbAdapter == null) return null; return dbAdapter; } だれか、もっといいやりかたおせぇて orz ■OracleでTransactionScopeを使用する場合の注意点 Oracle(10gR2)でTransactionScopeを利用する際に、以下のエラーがでる場合があります。 "oramts.dllが見つかりません。" このエラーが出た場合、以下の点を疑ってみてください。 マシンに、Oracle Services For Microsoft Transaction Service (OraMTS)がインストールされているかどうか? OraMTSは、Oracle Clientをカスタムモードでインストールしないとインストールされません。 インストールすると、ORACLE_HOME/Binの下に以下のファイルが見つかります。 * oramts.dll * oramts10.dll